package BUSSINES_LAYER;

import java.util.List;

import javax.ejb.Remote;

import ENTITIES.tbl_Abono;
import ENTITIES.tbl_Financiacion_A;
import ENTITIES.tbl_Reconexion_otros;
import ENTITIES.tbl_Usuario;

/**
 * CLASE DE LA CAPA DE NEGOCIO EmployedRemote, MANEJA LO RELACIONADO CON
 * USUARIOS, FINANCIACION_A, FINANCIACION_A, ABONOS, EMPLEADOS,  FACTURAS
 * RECONEXION, TARIFA_ACUEDUCTO, TARIFA_ALCANTARILLADO, SUBSIDIO, ESTRATO, CAUSA_NO_LECTURA 
 *
 *
 *DESARROLLADO POR: MARIA ALEJANDRA PEREZ SALAZAR
 * 					STEVEN SALCEDO
 * 					YULIANA MARIA SAAVEDRA RUSSI
 * 
 * INGENIEROS DE SISTEMAS Y COMPUTACION
 *  
 * 
 */
@Remote
public interface EmployedRemote {

	/**
	 * METODO PAR ALA INSERCION DE UN USUARIO EN LA BASE DE DATOS, VERIFICANDO
	 * SU EXISTENCIA
	 * 
	 * 
	 * @param usuario
	 *            : RECIBE EL USUARIO A INSERTAR.
	 * @return boolean true SI SE INSERTO CORRECTAMENTE.
	 */
	public boolean insertUsuario(tbl_Usuario usuario);

	/**
	 * METODO PARA LA ACTUALIZACION DE UN USUARIO EN LA BASE DE DATOS,
	 * VERIFICANDO QUE EXISTA
	 * 
	 * @param usuario
	 *            : RECIBE EL CLIENTE A SER ACTUALIZADO.
	 * @return boolean true SI SE ACTUALIZO CORRECTAMENTE.
	 */
	public boolean upDateUsuario(tbl_Usuario usuario);

	/**
	 * METODO PARA BUSCAR UN USUARIO EN LA BASE DE DATOS,. VERIFICACO QUE ESTE
	 * EXISTA
	 * 
	 * @param matricula
	 *            : RECIBE EL NUMERO DEL MATRICULA
	 * @return boolean true SI SE ENCONTRO.
	 * 
	 */
	public boolean selectUsuario(long idMatricula);

	/**
	 * METODO PARA LISTAR TODOS LOS USUARIOS DE LA BASE DE DATOS
	 * 
	 * @return List<Long>.
	 */
	public List<Long> allUsuarios();

	/**
	 * METODO PARA REALIZAR UNA RECONEXION
	 * 
	 * 
	 * @param reconexion
	 *            : RECIBE LA RECONEXION QUE SE LE VA A HACER A UNA MATRICULA.
	 * 
	 * @return boolean true SI SE HIZO LA RECONEXION EXITOSA.
	 */
	public boolean insertReconexion(tbl_Reconexion_otros reconexion);

	/**
	 * METODO PARA ELIMINAR UNA RECONEXION.
	 * 
	 * @param idReconexion_otros
	 *            : recibe el id DE LA RECONEXION.
	 * @return boolean true SI SE ELIMINO CORRECTAMENTE LA RECONEXION.
	 */
	public boolean deleteReconexion(long idReconexionOtros);

	/**
	 * METODO PARA LA ACTUALIZACION DE UNA RECONEXION EN LA BASE DE DATOS,
	 * VERIFICANDO QUE EXISTA.
	 * 
	 * @param bitacora
	 *            : RECIBE LA BITACORA A SER MODIFICADA.
	 * @return boolean true SI SE ACTUALIZO EXITOSAMENTE.
	 */
	public boolean updateReconexion(tbl_Reconexion_otros reconexion);

	/**
	 * METODO PARA LA INSERSION DE UN ABONO.
	 * 
	 * @param abonos
	 *            :
	 * @return boolean true
	 */

	public boolean insertAbono(tbl_Abono abonos);

	/**
	 * METODO PARA ELIMINAR UN ABONO A UNA FACTURA
	 * 
	 * @param idAbonos
	 *            : RECIBE EL id DEL ABONO.
	 * @return boolean true SI SE ELIMINO EXITOSAMENTE.
	 */
	public boolean deleteAbono(long idAbono);

	/**
	 * METODO PARA LA ACTUALIZACION DE UN ABONO EN LA BASE DE DATOS, VERIFICANDO
	 * QUE EXISTA.
	 * 
	 * @param abono
	 *            : RECIBE EL ABONO A SER MODIFICADO
	 * @return boolean true SI SE ACTUALIZO EXITOSAMENTE
	 */
	public boolean updateAbono(tbl_Abono abono);

	/**
	 * METODO PARA LA LECTURA DE LA TARIFAS, VERIFICANDO QUE EXISTA UNA TARIFA
	 * EN LA BASE DE DATOS.
	 * 
	 * @param tarifa_acueducto
	 *            : recibe LA TARIFA A CONSULTAR.
	 * @return boolean true SI LA CONSULTA FUE EXITOSA.
	 */
	public boolean selectTarifas();

	/**
	 * METODO PARA LA INSERCION DE UNA FINANCIACION PARA UNA MATRICUAL EN LA BASE DE DATOS,
	 *  VERIFICANDO LA EXISTENCIA DE LA MATRUCILA
	 * 
	 * 
	 * @param financiacion
	 *            : RECIBE LA FINANCIACION A INSERTAR.
	 * @return boolean true SI SE INSERTO CORRECTAMENTE.
	 */
	public boolean insertFinanciacion_A(tbl_Financiacion_A fa);

	/**
	 * METODO PARA LA ACTUALIZACION DE UNA FINANCIACION EN LA BASE DE DATOS,
	 * VERIFICANDO LA EXISTENCIA DE LA MATRICULA 
	 * 
	 * @param financiacion
	 *            : RECIBE LA FINANCIACION A SER  ACTUALIZADA.
	 * @return boolean true SI SE ACTUALIZO CORRECTAMENTE.
	 */
	public boolean upDateFinanciacion_A(tbl_Financiacion_A fa);

	/**
	 * METODO PARA BUSCAR UNA FINANCIACION EN LA BASE DE DATOS,
	 * VERIFICACO QUE ESTE EXISTA LA MATRICULA
	 * 
	 * @param idFinanciacion
	 *            : RECIBE EL id DE LA MATRICULA
	 * @return boolean true SI SE ENCONTRO.
	 * 
	 */
	public boolean selectFinanciacion_A(long idFinanciacion);

	/**
	 * METODO PARA LISTAR TODAS LAS FINANCIACIONES DE LA BASE DE DATOS
	 * 
	 * @return List<Long>.
	 */
	public List<Long> allFinanciaciones_A();

}
